iOS 视图抖动

iOS 视图抖动

.h

1
2
3
4
5
6
7
8
9
10
11
12
13
/**
添加抖动动画

@param view 添加的视图
*/
+ (void)addAnimationShakeWithView:(UIView *)view;

/**
移除抖动动画

@param view 移除的视图
*/
+ (void)removeAnimationShakeWithView:(UIView *)view;

.m

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#define kShakingRadian(R) ((R) / 180.0 * M_PI)

@implementation SHAnimation

#pragma mark - 添加抖动动画
+ (void)addAnimationShakeWithView:(UIView *)view{

CAKeyframeAnimation *animation = [CAKeyframeAnimation animation];

animation.keyPath = @"transform.rotation";

animation.values = @[@(kShakingRadian(-5)), @(kShakingRadian(5)), @(kShakingRadian(-5))];

animation.duration = 0.25;

// 动画的重复执行次数
animation.repeatCount = MAXFLOAT;

// 保持动画执行完毕后的状态
animation.removedOnCompletion = NO;

animation.fillMode = kCAFillModeForwards;

[view.layer addAnimation:animation forKey:@"sh_animation_shake"];
}

#pragma mark - 移除抖动动画
+ (void)removeAnimationShakeWithView:(UIView *)view{

//结束动画
[view.layer removeAnimationForKey:@"sh_animation_shake"];
}
-------------本文结束感谢阅读-------------